Imports System.Data
Imports CrystalDecisions.CrystalReports.Engine

Partial Class SolMultipleReporte
  Inherits System.Web.UI.Page

  Protected Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Load

    Try
      Dim reporte As New ReportDocument()
      ' Detalle del documento
      reporte.Load(Server.MapPath("~\Documentos\SolMultiple\Reporte\rptSolMultiple.rpt"))

      'Datos encabezado
      Dim docSolMultiple As New DataAccesSolMultiple()
      Dim SolMultipleDetalle As New DataSet("DetalleDocumento")
      SolMultipleDetalle = docSolMultiple.SolMultiple_DetalleXML(CInt(Request.QueryString("nidDocumento")))
	  SolMultipleDetalle.Tables(0).TableName = "Encabezado"
	  SolMultipleDetalle.Tables(1).TableName = "DetalleDocumento"
	  SolMultipleDetalle.Tables(2).TableName = "Anexos"
	  SolMultipleDetalle.Tables(3).TableName = "Incidencias"
	  
	  Dim tEncabezado As DataTable=SolMultipleDetalle.Tables(0)
	  Dim tDetalle As DataTable=SolMultipleDetalle.Tables(1)
	  Dim tAnexos As DataTable=SolMultipleDetalle.Tables(2)
	  Dim tIncidencias As DataTable=SolMultipleDetalle.Tables(3)
	  
      reporte.SetParameterValue("pCodigo", tEncabezado.Rows(0)("CODIGO"))
      reporte.SetParameterValue("pFechaSolicitud", CDate(tEncabezado.Rows(0)("FECHACREACION")).ToString("dd/MM/yyyy HH:mm:ss"))
      reporte.SetParameterValue("pEmisor", tEncabezado.Rows(0)("NOMBRE"))

      'Detalle del documento
	  reporte.SetParameterValue("pnid", tDetalle.Rows(0)("nid").ToString)
      reporte.SetParameterValue("pniddocumento", tDetalle.Rows(0)("niddocumento").ToString)
      reporte.SetParameterValue("ptipo_maniobra", tDetalle.Rows(0)("tipo_maniobra").ToString)
      reporte.SetParameterValue("pestado", tDetalle.Rows(0)("estado").ToString)
      reporte.SetParameterValue("particulo", tDetalle.Rows(0)("articulo").ToString)
      reporte.SetParameterValue("pfecha_solicitud", CDate(tDetalle.Rows(0)("fecha_solicitud")).ToString("dd/MM/yyyy HH:mm:ss"))
      reporte.SetParameterValue("ppuerto_destino", tDetalle.Rows(0)("puerto_destino").ToString)
      reporte.SetParameterValue("ppuerto_descarga", tDetalle.Rows(0)("puerto_descarga").ToString)
      reporte.SetParameterValue("pbuque", tDetalle.Rows(0)("buque").ToString)
      reporte.SetParameterValue("ppatente", tDetalle.Rows(0)("patente").ToString)
      reporte.SetParameterValue("prectificado", tDetalle.Rows(0)("rectificado").ToString)
      reporte.SetParameterValue("pfolio_entrada", tDetalle.Rows(0)("folio_entrada").ToString)
      reporte.SetParameterValue("pfolio_programacion", tDetalle.Rows(0)("folio_programacion").ToString)
      reporte.SetParameterValue("pfecha_entrada", CDate(tDetalle.Rows(0)("fecha_entrada")).ToString("dd/MM/yyyy HH:mm:ss"))
      reporte.SetParameterValue("pfecha_rectificacion", CDate(tDetalle.Rows(0)("fecha_rectificacion")).ToString("dd/MM/yyyy HH:mm:ss"))
      reporte.SetParameterValue("pfecha_programacion", CDate(tDetalle.Rows(0)("fecha_programacion")).ToString("dd/MM/yyyy HH:mm:ss"))
      reporte.SetParameterValue("pfeta", CDate(tDetalle.Rows(0)("feta")).ToString("dd/MM/yyyy HH:mm:ss"))
      reporte.SetParameterValue("pidrecinto_desde", tDetalle.Rows(0)("idrecinto_desde").ToString)
      reporte.SetParameterValue("pidrecinto_hasta", tDetalle.Rows(0)("idrecinto_hasta").ToString)
      reporte.SetParameterValue("pvid", tDetalle.Rows(0)("vid").ToString)
      reporte.SetParameterValue("pid_mcia", tDetalle.Rows(0)("id_mcia").ToString)
      reporte.SetParameterValue("ppedimento", tDetalle.Rows(0)("pedimento").ToString)
      reporte.SetParameterValue("pregimen", tDetalle.Rows(0)("regimen").ToString)
      reporte.SetParameterValue("pbooking", tDetalle.Rows(0)("booking").ToString)
      reporte.SetParameterValue("pregistro", tDetalle.Rows(0)("registro").ToString)
      reporte.SetParameterValue("pconso_desconso", tDetalle.Rows(0)("conso_desconso").ToString)
      reporte.SetParameterValue("pdc_emp_aduanal", tDetalle.Rows(0)("dc_emp_aduanal").ToString)
      reporte.SetParameterValue("pemp_aduanal", tDetalle.Rows(0)("emp_aduanal").ToString)
      reporte.SetParameterValue("pcliente", tDetalle.Rows(0)("cliente").ToString)
      reporte.SetParameterValue("prfc", tDetalle.Rows(0)("rfc").ToString)
      reporte.SetParameterValue("pdireccion", tDetalle.Rows(0)("direccion").ToString)
      reporte.SetParameterValue("pciudad", tDetalle.Rows(0)("ciudad").ToString)
      reporte.SetParameterValue("pcp", tDetalle.Rows(0)("cp").ToString)
      reporte.SetParameterValue("plinea_trans", tDetalle.Rows(0)("linea_trans").ToString)
      reporte.SetParameterValue("pchofer", tDetalle.Rows(0)("chofer").ToString)
      reporte.SetParameterValue("pplacas", tDetalle.Rows(0)("placas").ToString)
      reporte.SetParameterValue("pno_economico", tDetalle.Rows(0)("no_economico").ToString)
      reporte.SetParameterValue("pno_licencia", tDetalle.Rows(0)("no_licencia").ToString)
      reporte.SetParameterValue("pfecha_actualizacion", CDate(tDetalle.Rows(0)("fecha_actualizacion")).ToString("dd/MM/yyyy HH:mm:ss"))
      reporte.SetParameterValue("prfc_responsable", tDetalle.Rows(0)("rfc_responsable").ToString)
      reporte.SetParameterValue("pnombre_responsable", tDetalle.Rows(0)("nombre_responsable").ToString)
      reporte.SetParameterValue("prepresentante", tDetalle.Rows(0)("representante").ToString)
      reporte.SetParameterValue("pprocesado_sip", tDetalle.Rows(0)("procesado_sip").ToString)
      reporte.SetParameterValue("pprogramado_calt", tDetalle.Rows(0)("programado_calt").ToString)
      reporte.SetParameterValue("prfc_transportista", tDetalle.Rows(0)("rfc_transportista").ToString)
      
      

      'Datos Anexos
      Dim anexos As String = ""
      Dim tipos As String = ""
      For i As Integer = 0 To tAnexos.Rows.Count - 1
        anexos += tAnexos.Rows(i)("NOMBRE") + Chr(13)
        tipos += tAnexos.Rows(i)("TIPO") + Chr(13)
      Next
      reporte.SetParameterValue("pAnexos", anexos)
      reporte.SetParameterValue("pAnexoTipo", tipos)

      'Datos Incidencias
      Dim fecha As String = ""
      Dim descripcion As String = ""
      Dim emisor As String = ""
      For i As Integer = 0 To tIncidencias.Rows.Count - 1
        fecha += CDate(tIncidencias.Rows(i)("FECHAEMISION")).ToString("dd/MM/yyyy hh:mm:ss") + Chr(13)
        descripcion += tIncidencias.Rows(i)("DESCRIPCION") + Chr(13)
        emisor += tIncidencias.Rows(i)("NOMBRE") + Chr(13)
      Next
      reporte.SetParameterValue("pFechaIncidencia", fecha)
      reporte.SetParameterValue("pDescripcionIncidencia", descripcion)
      reporte.SetParameterValue("pEmisorIncidencia", emisor)


      'Cargar informacion de firma electronica
      Dim consultaFirmas As New DataAccesGenerales()
      Dim firmas As New DataTable("CasetaFirmas")
      firmas = consultaFirmas.consultarFirmas(CInt(Request.QueryString("nidDocumento")))
      Dim cadenaFirmas As String = String.Empty
      For Each datoFirma In firmas.Rows
        cadenaFirmas = cadenaFirmas & datoFirma("Firma").ToString() & " "+ Chr(13)
      Next
      reporte.SetParameterValue("pFirma", cadenaFirmas)

      'crvSolMultiple.ParameterFieldInfo.Clear()
      Me.crvSolMultiple.HasExportButton = False
      Me.crvSolMultiple.HasToggleGroupTreeButton = False
      Me.crvSolMultiple.EnableParameterPrompt = False
      'Me.crvSolMultiple.ParameterFieldInfo = False
      Me.crvSolMultiple.ReportSource = reporte

    Catch ex As Exception
      lblMensaje.Text = "Error al Cargar reporte: " + ex.Message
    End Try
  End Sub

End Class
